#pragma once
#include <iostream>
#include <string>
#include <unistd.h>
#include "tcp_server.hpp"
using namespace std;
/*
   Task类实现service服务
*/
using func_t = function<void(int,const std::string& ,const uint16_t&)>;  //回调函数的类型


class Task
{
public:
    // 构造
    Task() {}
    Task(int fd,string ip,uint16_t port,func_t f) :sock(fd),clientip(ip),clientport(port),func(f) 
    {
    }
    // 需要调用servic服务
    void operator()()
    {
        func(sock,clientip,clientport);
        usleep(10000); //模拟处理任务的时间
    }
    
    // 析构
    ~Task() {}

private:
    int sock;
    string clientip;
    uint16_t clientport;
    func_t func;
};